package com.vcredit.creditcat.api;

import java.text.ParseException;
import java.util.List;

import com.vcredit.creditcat.dto.ability.AbilityDto;
import com.vcredit.creditcat.dto.ability.CreditDimensionDto;
import com.vcredit.creditcat.dto.creditrepository.AuthItemDto;
import com.vcredit.creditcat.model.Cust;
import com.vcredit.creditcat.model.CustAbility;

public interface ICustAbilityManager {

	/**
	 * @Title: findAllAbilities @Description: 获取所有特权 @param: @return @return:
	 * List<AbilityDto> @throws
	 */
	List<AbilityDto> findAllAbilities();

	/**
	 * @Title: findCustOwnAbilities @Description: 获取客户特权 @param: @param
	 * cust @param: @return @return: List<AbilityDto> @throws
	 */
	List<AbilityDto> findCustOwnAbilities(Cust cust);

	/**
	 * @Title: findCustOwnDimension @Description: 获取客户获取的维度 @param: @param
	 * cust @param: @return @return: List<CreditDimensionDto> @throws
	 */
	List<CreditDimensionDto> findCustOwnDimension(Cust cust);

	/**
	 * @Title: findRecommendAuthItem @Description: 根据客户已完成认证项，推荐完成的认证项 @param:
	 * cust 客户对象 @param: top 前几位, -1所有 @param: @return @return:
	 * List<AuthItemDto> @throws
	 */
	List<AuthItemDto> findRecommendAuthItem(Cust cust, int top) throws Exception;

	
	List<AuthItemDto> findRecommendAuthItem(Cust cust) throws Exception;

	/**
	 * 提交特權申請
	 * @param privilegeId
	 * @param custId
	 * @throws Exception 
	 */
	void addAbility(String privilegeId, Long custId) throws Exception;

	/**
	 * 查询用户反现金额
	 * @param custId
	 * @return
	 * @throws Exception
	 */
	String getCustMaxAbilityValue(Long custId) throws  Exception;

	List<CustAbility> findCustAbilities(Cust cust);

}
